[INFO] cloning repository https://github.com/nick-gl/gb_emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nick-gl/gb_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 50b3e99b8dde2d5b5b3c3d71c8a83cb970578113
[INFO] fixing nick-gl/gb_emulator against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nick-gl/gb_emulator
[INFO] finished tweaking git repo https://github.com/nick-gl/gb_emulator
[INFO] tweaked toml for git repo https://github.com/nick-gl/gb_emulator written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nick-gl/gb_emulator on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nick-gl/gb_emulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bit v0.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb
[INFO] running `Command { std: "docker" "start" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling sdl2 v0.36.0
[INFO] [stderr]     Checking bit v0.1.1
[INFO] [stderr]    Compiling sdl2-sys v0.36.0
[INFO] [stderr]     Checking gb_emu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `crate::Tiles`
[INFO] [stdout]   --> src/GPU/gpu.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::Tiles::Tiles;
[INFO] [stdout]    |            ^^^^^ could not find `Tiles` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bus::MemoryBus`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::bus::MemoryBus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/cpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GPU::gpu::Interrupt`
[INFO] [stdout]  --> src/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::GPU::gpu::Interrupt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1598:25
[INFO] [stdout]      |
[INFO] [stdout] 1598 |         let new_value = (values >> 1);
[INFO] [stdout]      |                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1598 -         let new_value = (values >> 1);
[INFO] [stdout] 1598 +         let new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1608:29
[INFO] [stdout]      |
[INFO] [stdout] 1608 |         let mut new_value = (values >> 1);
[INFO] [stdout]      |                             ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1608 -         let mut new_value = (values >> 1);
[INFO] [stdout] 1608 +         let mut new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Fake_gpu::FakeGPU`
[INFO] [stdout]  --> src/bus.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::Fake_gpu::FakeGPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GPU::gpu`
[INFO] [stdout]  --> src/bus.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::GPU::gpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PixelFormatEnum`, `Sdl`, `TextureCreator`, `WindowContext`, `event::Event`, and `keyboard::Keycode`
[INFO] [stdout]  --> src/GPU/gpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     event::Event,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 3 |     keyboard::Keycode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     pixels::{Color, PixelFormatEnum},
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     render::{Canvas, TextureCreator},
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     video::{Window, WindowContext},
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 7 |     Sdl,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Background_color` should have an upper camel case name
[INFO] [stdout]   --> src/GPU/gpu.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum Background_color {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BackgroundColor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serialize`
[INFO] [stdout]  --> src/InterruptFlags.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[cfg_attr(feature = "serialize", derive(Serialize))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serialize` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:71:43
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Keypad::RIGHT => self.row0 |= (1 << 0),
[INFO] [stdout]    |                                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -             Keypad::RIGHT => self.row0 |= (1 << 0),
[INFO] [stdout] 71 +             Keypad::RIGHT => self.row0 |= 1 << 0 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:72:42
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Keypad::LEFT => self.row0 |= (1 << 1),
[INFO] [stdout]    |                                          ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 72 -             Keypad::LEFT => self.row0 |= (1 << 1),
[INFO] [stdout] 72 +             Keypad::LEFT => self.row0 |= 1 << 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:73:40
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Keypad::UP => self.row0 |= (1 << 2),
[INFO] [stdout]    |                                        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -             Keypad::UP => self.row0 |= (1 << 2),
[INFO] [stdout] 73 +             Keypad::UP => self.row0 |= 1 << 2 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:74:42
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Keypad::DOWN => self.row0 |= (1 << 3),
[INFO] [stdout]    |                                          ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 74 -             Keypad::DOWN => self.row0 |= (1 << 3),
[INFO] [stdout] 74 +             Keypad::DOWN => self.row0 |= 1 << 3 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:75:39
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Keypad::A => self.row1 |= (1 << 0),
[INFO] [stdout]    |                                       ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -             Keypad::A => self.row1 |= (1 << 0),
[INFO] [stdout] 75 +             Keypad::A => self.row1 |= 1 << 0 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:76:39
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Keypad::B => self.row1 |= (1 << 1),
[INFO] [stdout]    |                                       ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -             Keypad::B => self.row1 |= (1 << 1),
[INFO] [stdout] 76 +             Keypad::B => self.row1 |= 1 << 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::Tiles`
[INFO] [stdout]   --> src/GPU/gpu.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::Tiles::Tiles;
[INFO] [stdout]    |            ^^^^^ could not find `Tiles` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:77:44
[INFO] [stdout]    |
[INFO] [stdout] 77 |             Keypad::SELECT => self.row1 |= (1 << 2),
[INFO] [stdout]    |                                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -             Keypad::SELECT => self.row1 |= (1 << 2),
[INFO] [stdout] 77 +             Keypad::SELECT => self.row1 |= 1 << 2 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:78:43
[INFO] [stdout]    |
[INFO] [stdout] 78 |             Keypad::START => self.row1 |= (1 << 3),
[INFO] [stdout]    |                                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -             Keypad::START => self.row1 |= (1 << 3),
[INFO] [stdout] 78 +             Keypad::START => self.row1 |= 1 << 3 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bus::MemoryBus`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::bus::MemoryBus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/cpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GPU::gpu::Interrupt`
[INFO] [stdout]  --> src/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::GPU::gpu::Interrupt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1598:25
[INFO] [stdout]      |
[INFO] [stdout] 1598 |         let new_value = (values >> 1);
[INFO] [stdout]      |                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1598 -         let new_value = (values >> 1);
[INFO] [stdout] 1598 +         let new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1608:29
[INFO] [stdout]      |
[INFO] [stdout] 1608 |         let mut new_value = (values >> 1);
[INFO] [stdout]      |                             ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1608 -         let mut new_value = (values >> 1);
[INFO] [stdout] 1608 +         let mut new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Fake_gpu::FakeGPU`
[INFO] [stdout]  --> src/bus.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::Fake_gpu::FakeGPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GPU::gpu`
[INFO] [stdout]  --> src/bus.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::GPU::gpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PixelFormatEnum`, `Sdl`, `TextureCreator`, `WindowContext`, `event::Event`, and `keyboard::Keycode`
[INFO] [stdout]  --> src/GPU/gpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     event::Event,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 3 |     keyboard::Keycode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     pixels::{Color, PixelFormatEnum},
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     render::{Canvas, TextureCreator},
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     video::{Window, WindowContext},
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 7 |     Sdl,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Background_color` should have an upper camel case name
[INFO] [stdout]   --> src/GPU/gpu.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum Background_color {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BackgroundColor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serialize`
[INFO] [stdout]  --> src/InterruptFlags.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[cfg_attr(feature = "serialize", derive(Serialize))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serialize` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:71:43
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Keypad::RIGHT => self.row0 |= (1 << 0),
[INFO] [stdout]    |                                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -             Keypad::RIGHT => self.row0 |= (1 << 0),
[INFO] [stdout] 71 +             Keypad::RIGHT => self.row0 |= 1 << 0 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:72:42
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Keypad::LEFT => self.row0 |= (1 << 1),
[INFO] [stdout]    |                                          ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 72 -             Keypad::LEFT => self.row0 |= (1 << 1),
[INFO] [stdout] 72 +             Keypad::LEFT => self.row0 |= 1 << 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:73:40
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Keypad::UP => self.row0 |= (1 << 2),
[INFO] [stdout]    |                                        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -             Keypad::UP => self.row0 |= (1 << 2),
[INFO] [stdout] 73 +             Keypad::UP => self.row0 |= 1 << 2 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:74:42
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Keypad::DOWN => self.row0 |= (1 << 3),
[INFO] [stdout]    |                                          ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 74 -             Keypad::DOWN => self.row0 |= (1 << 3),
[INFO] [stdout] 74 +             Keypad::DOWN => self.row0 |= 1 << 3 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:75:39
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Keypad::A => self.row1 |= (1 << 0),
[INFO] [stdout]    |                                       ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -             Keypad::A => self.row1 |= (1 << 0),
[INFO] [stdout] 75 +             Keypad::A => self.row1 |= 1 << 0 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:76:39
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Keypad::B => self.row1 |= (1 << 1),
[INFO] [stdout]    |                                       ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -             Keypad::B => self.row1 |= (1 << 1),
[INFO] [stdout] 76 +             Keypad::B => self.row1 |= 1 << 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:77:44
[INFO] [stdout]    |
[INFO] [stdout] 77 |             Keypad::SELECT => self.row1 |= (1 << 2),
[INFO] [stdout]    |                                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -             Keypad::SELECT => self.row1 |= (1 << 2),
[INFO] [stdout] 77 +             Keypad::SELECT => self.row1 |= 1 << 2 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/keypad.rs:78:43
[INFO] [stdout]    |
[INFO] [stdout] 78 |             Keypad::START => self.row1 |= (1 << 3),
[INFO] [stdout]    |                                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -             Keypad::START => self.row1 |= (1 << 3),
[INFO] [stdout] 78 +             Keypad::START => self.row1 |= 1 << 3 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:72:23
[INFO] [stdout]     |
[INFO] [stdout]  72 |             gpu: GPU::new(),
[INFO] [stdout]     |                       ^^^ associated function or constant not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- associated function or constant `new` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |             gpu: GPU::new(),
[INFO] [stdout]     |                       ^^^ associated function or constant not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- associated function or constant `new` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `step` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:119:44
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let (vblank, lcd) = match self.gpu.step(cycles) {
[INFO] [stdout]     |                                            ^^^^ method not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- method `step` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:72:23
[INFO] [stdout]     |
[INFO] [stdout]  72 |             gpu: GPU::new(),
[INFO] [stdout]     |                       ^^^ associated function or constant not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- associated function or constant `new` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |             gpu: GPU::new(),
[INFO] [stdout]     |                       ^^^ associated function or constant not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- associated function or constant `new` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:168:29
[INFO] [stdout]     |
[INFO] [stdout] 167 | ...                   WordByteSource::U16 | WordByteSource::SP => 3,
[INFO] [stdout]     |                       ---------------------------------------- matches all the relevant values
[INFO] [stdout] 168 | ...                   _=> 1
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `step` found for struct `GPU::gpu::GPU` in the current scope
[INFO] [stdout]    --> src/bus.rs:119:44
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let (vblank, lcd) = match self.gpu.step(cycles) {
[INFO] [stdout]     |                                            ^^^^ method not found in `GPU::gpu::GPU`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/GPU/gpu.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct GPU {
[INFO] [stdout]     | -------------- method `step` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]    --> src/cpu.rs:846:29
[INFO] [stdout]     |
[INFO] [stdout] 846 |                         let new_value = self.or(value);
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1085:29
[INFO] [stdout]      |
[INFO] [stdout] 1085 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1095:29
[INFO] [stdout]      |
[INFO] [stdout] 1095 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1100:29
[INFO] [stdout]      |
[INFO] [stdout] 1100 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1105:29
[INFO] [stdout]      |
[INFO] [stdout] 1105 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1109:29
[INFO] [stdout]      |
[INFO] [stdout] 1109 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1113:29
[INFO] [stdout]      |
[INFO] [stdout] 1113 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1117:29
[INFO] [stdout]      |
[INFO] [stdout] 1117 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1121:29
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]    --> src/cpu.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut return_pc= 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 110 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]     |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]     --> src/cpu.rs:1150:17
[INFO] [stdout]      |
[INFO] [stdout] 1150 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1167 |                 return_pc = self.pc.wrapping_add(2);
[INFO] [stdout]      |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]     --> src/cpu.rs:1172:17
[INFO] [stdout]      |
[INFO] [stdout] 1172 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1187 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:168:29
[INFO] [stdout]     |
[INFO] [stdout] 167 | ...                   WordByteSource::U16 | WordByteSource::SP => 3,
[INFO] [stdout]     |                       ---------------------------------------- matches all the relevant values
[INFO] [stdout] 168 | ...                   _=> 1
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/instruction.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/instruction.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |             0x00 => Some(Instruction::RLC(B)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 273 |             0x01 => Some(Instruction::RLC(C)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 274 |             0x02 => Some(Instruction::RLC(D)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 275 |             0x03 => Some(Instruction::RLC(E)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 372 |             _ => None,
[INFO] [stdout]     |             ^ ...and 63 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]    --> src/cpu.rs:846:29
[INFO] [stdout]     |
[INFO] [stdout] 846 |                         let new_value = self.or(value);
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1085:29
[INFO] [stdout]      |
[INFO] [stdout] 1085 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1095:29
[INFO] [stdout]      |
[INFO] [stdout] 1095 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1100:29
[INFO] [stdout]      |
[INFO] [stdout] 1100 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1105:29
[INFO] [stdout]      |
[INFO] [stdout] 1105 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1109:29
[INFO] [stdout]      |
[INFO] [stdout] 1109 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1113:29
[INFO] [stdout]      |
[INFO] [stdout] 1113 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1117:29
[INFO] [stdout]      |
[INFO] [stdout] 1117 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1121:29
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                         let new_value = self.sub(value);return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]    --> src/cpu.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut return_pc= 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 110 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]     |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]     --> src/cpu.rs:1150:17
[INFO] [stdout]      |
[INFO] [stdout] 1150 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1167 |                 return_pc = self.pc.wrapping_add(2);
[INFO] [stdout]      |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_pc` is never read
[INFO] [stdout]     --> src/cpu.rs:1172:17
[INFO] [stdout]      |
[INFO] [stdout] 1172 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1187 |                 return_pc = self.pc.wrapping_add(1);
[INFO] [stdout]      |                 ----------------------------------- `return_pc` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/cartride.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/instruction.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/instruction.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |             0x00 => Some(Instruction::RLC(B)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 273 |             0x01 => Some(Instruction::RLC(C)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 274 |             0x02 => Some(Instruction::RLC(D)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 275 |             0x03 => Some(Instruction::RLC(E)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 372 |             _ => None,
[INFO] [stdout]     |             ^ ...and 63 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/cartride.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let mut my_line: String;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let opcode = cpu.bus.read_byte(pc);
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let mut my_line: String;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let opcode = cpu.bus.read_byte(pc);
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gb_emu` (bin "gb_emu") due to 4 previous errors; 36 warnings emitted
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gb_emu` (bin "gb_emu" test) due to 4 previous errors; 36 warnings emitted
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb", kill_on_drop: false }`
[INFO] [stdout] c5cf6c443ef4ceeb5cadcd7cdfcb9059e329edaa51007865d23b9d2d2c5e7bfb
